2022年vivo互联网技术最受欢迎文章TOP25
2022 年度回顾
岁月流转,时光飞逝,转眼2022年已经画上句号。过去一年,vivo 互联网技术共推送了100篇技术干货内容,涉及数据库、云计算、容器、前端、OKR等领域。
今天小编整理了2022年公众号最受欢迎的25篇技术文章(根据阅读量和点赞筛选)。
01
使用过Redis的同学应该都知道,它基于键值对(key-value)的内存数据库,所有数据存放在内存中,内存在Redis中扮演一个核心角色,所有的操作都是围绕它进行。
我们在实际维护过程中经常会被问到如下问题,比如数据怎么存储在Redis里面能节约成本、提升性能?redis内存告警是什么原因导致?
本文主要是通过分析Redis内存结构、介绍内存优化手段,同时结合生产案例,帮助大家在优化内存使用,快速定位redis相关内存异常问题。【详情】
02
vivo推送平台是vivo公司向开发者提供的消息推送服务,通过在云端与客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用实时推送消息的服务,支持百亿级的通知/消息推送,秒级触达移动用户。
推送平台的特点是并发高、消息量大、送达及时性较高。系统设计中采用Redis集群作为消息存储和中转,以及token信息存储。集群规模大。本文围绕推送系统对Redis集群的使用,遇到的问题及解决方案,优化过程讲解。另外,给出一些Redis集群使用的经验和建议。【详情】
03
随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课。性能优化从何着手?如何从问题表象定位到性能瓶颈?如何验证优化措施是否有效?本文将介绍分享 vivo push 推荐项目中的性能调优实践,希望给大家提供一些借鉴和参考。【详情】
04
在平时开发中,经常会与定时任务打交道。时间轮以其精妙的设计,可以被用来高效的处理定时任务。【详情】
05
大量业务使用消息中间件进行系统间的解耦、异步化、削峰填谷设计实现。公司内部前期基于RabbitMQ实现了一套高可用的消息中间件平台。随着业务的持续增长,消息体量随之增大,对消息中间件平台提出了更高的要求,此外在运维过程中也遇到了高可用难以保障,功能特性不足等诸多问题。基于遇到的这些问题,决定引入RocketMQ进行替换。本文将介绍基于RocketMQ建设消息中间件平台并实现在线业务无感知的平滑迁移。【详情】
06
HttpClient作为java程序员最常用的Http工具,其对Http连接的管理能简化开发,并且提升连接重用效率;在正常情况下,HttpClient能帮助我们高效管理连接,但在一些并发高,报文体较大的情况下,如果再遇到网络波动,如何保证连接被高效利用,有哪些优化空间。【详情】
07
本文主要论述了vivo服务端监控系统的架构设计思路、系统演进之路以及应对行业内主流监控对比,帮助读者在做技术选型时,参照它来设计自己的决策树,避免反复纠结造成效率降低。【详情】
08
当前业界主流的RocketMQ灰度方案通常是利用影子topic或tag来区分灰度消息,这种方案需要创建独立的灰度消费组来维护额外的订阅关系,在灰度流量切换时,存在难以衔接回正常版本消费组的消费位移,难以保证灰度消息消费完成而不丢失等问题,从效果上没有完全达到灰度的期望。本文通过Queue来隔离灰度与非灰度消息,改造producer实现灰度与非灰度消息的隔离投放,改造consumer实现灰度与非灰度消息的正常消费,保证灰度状态切换时灰度消息不丢失,改造broker来保证灰度订阅关系的一致性,改造namesrv实现客户端灰度状态的存储与同步,最终实现MQ全链路灰度流量的无损切换。【详情】
09
本文主要给出了电商平台通用取货码的完整设计思路,按此思路可以实现大多数核销类券码的生成问题,也能够满足SaaS化的业务。【详情】
10
随着vivo业务迁移到k8s的增长,我们需要将K8s部署到多个数据中心。如何高效、可靠的在数据中心管理多个大规模的k8s集群是我们面临的关键挑战。Kubernetes的节点需要对OS、Docker、etcd、K8s、CNI和网络插件的安装和配置,维护这些依赖关系繁琐又容易出错。
本文将分享我们开发的Kubenetes-Operator,采用k8s的声明式API设计,可以让集群管理员和Kubernetes-Operator的CR资源进行交互,以简化、降低任务风险性。只需要一个集群管理员就可以维护成千上万个k8s节点。【详情】
Top 11- 25
Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进。在HDFS方面,支持了Erasure Coding、More than 2 NameNodes、Router-Based Federation、Standby NameNode Read、FairCallQueue、Intra-datanode balancer 等新特性,这些新特性在稳定性、性能、成本等多个方面带来诸多收益,我们打算将HDFS集群升级到HDFS 3.x 版本。本篇文章会介绍我们是如何将CDH 5.14.4 HDFS 2.6.0 滚动升级到HDP-3.1.4.0-315 HDFS 3.1.1版本,是业界为数不多的从CDH集群滚动升级到HDP集群的案例。在升级中遇到哪些问题?这些问题是如何解决掉的?本篇文章具有非常高的参考借鉴价值。【详情】
Apache Kafka 作为一个热门消息队列中间件,具备高效可靠的消息处理能力,且拥有非常广泛的应用领域。文章介绍基于 Kafka 的实时数仓在搜索的实践应用。【详情】
随着互联网的发展,应用越来越多,开发者、运营人员需要通过不同的方式提升用户活跃与留存,而平台的流量也越来越高,给系统带来了不同挑战比如高并发、内容安全等,本文将会为您揭秘我们推送平台是如何克服这些挑战。【详情】
本文是《vivo营销自动化技术解密》的第3篇文章,分析了营销自动化业务背景和状态机引入原因、状态机的三种基本实现方式,同时介绍了几种业界流行的开源状态机框架实现和特点,以及在项目开发过程中的实践和总结。【详情】
本文是《vivo营销自动化技术解密》的第4篇文章,分析了在营销自动化业务引入工作流技术的背景和工作流引擎的介绍,同时介绍了几种业界流行的开源工作流引擎特点,以及在项目自研开发过程中的设计思路和总结思考。【详情】
Prometheus作为云原生监控的事实标准,得到了广泛的应用实践,但面对复杂多样的生产环境,需要围绕Prometheus并借助云原生监控生态来构建合适的容器集群监控体系。本文介绍了vivo容器团队根据自身生产环境特点,利用云原生监控生态来构建容器集群监控架构的设计思路和方法,同时分享了实践过程中遇到的困难挑战和应对策略。【详情】
在企业大数据体系建设过程中,数据采集是其中的首要环节。然而,当前行业内的相关开源数据采集组件,并无法满足企业大规模数据采集的需求与有效的数据采集治理,所以大部分企业都采用自研开发采集组件的方式。本文通过在vivo的日志采集服务的设计实践经验,为大家提供日志采集Agent在设计开发过程中的关键设计思路。【详情】
Kafka作为大数据生态中不可或缺的组件,承载了数据流通通道和缓冲的重要作用。本篇主要从Kafka万亿消息实践的集群部署、资源隔离、监控、业务接入等维度进行阐述。当集群规模较大,日处理消息数量达到万亿甚至数十万亿时故障不可避免。因此本篇对在Kafka万亿消息实践中一次典型的故障进行详细分析和说明。深入到Kafka架构原理层分析故障出现的根因及对应的解决方案。【详情】
本文梳理了Elasticsearch对于数值索引实现方案的升级和优化思考,从2015年至今数值索引的方案经历了多个版本的迭代,实现思路从最初的字符串模拟到KD-Tree,技术越来越复杂,能力越来越强大,应用场景也越来越丰富。从地理位置信息建模到多维坐标,数据检索到数据分析洞察都可以看到Elasticsearch的身影。【详情】
基于可视化搭建的方式来实现通用数据大屏搭建的解决方案,通过对平台能力的开发来讲解可视化搭建的核心功能实现,帮助有需要的同学了解可视化搭建的整体架构设计流程。【详情】
本文介绍了vivo游戏中心在灰度数据分析体系上的实践经验,从“实验思想-数学方法-数据模型-产品方案”四个层面提供了一套较为完整的智能灰度数据解决方案,以保障版本评估的科学性、项目进度以及灰度验证环节的快速闭环。该方案的亮点在于,指标异动根因分析方法的引入和全流程自动化产品方案的设计。【详情】
本文介绍了vivo短视频基于布隆过滤器的推荐去重的设计方案,在设计过程中我们力求简单、完美、优雅。首先,结合业务特点进行技术调研和选型,其次在技术选型之上逐步思考和设计布隆过滤器生成、存储方案,在细节方面也有精细考虑,最后在尝试多种迁移方案基础上形成了最终平滑迁移方案。【详情】
通过组合使用Redis的List等数据结构,结合Lua脚本,完成类消息队列功能,解决分组批量读取等功能。【详情】
本文简单介绍了一种分布式数据库排序方法以及排序优化。【详情】
本文主要讲述了如何将 wepy 框架的小程序项目一键转换为 uni-app 框架代码,详细讲解了方案的实现思路和具体实现方法。【详情】